home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / demovers / scripter / demo / sorttest.sic < prev    next >
Text File  |  1998-09-26  |  1KB  |  62 lines

  1. //ACE-SICPAR 8 0045 
  2. /*
  3.  * Kleiner Test der Sortierfunktion qsort. Es wird ein Array mit 1000
  4.  * Einträgen sortiert und die dafür benötigte Zeit ausgegeben.
  5.  */
  6. uses "sort.lib";
  7.  
  8. proc main(...)
  9. {
  10.     /*
  11.      * Array mit "zufälligen" Zahlen initialisieren
  12.      */
  13.     random_seed = 1;
  14.     test.length = 1000;
  15.     for(i = 0; i < 1000; ++i) test[i] = rand();
  16.  
  17.     printf("Sortiere...\n");
  18.  
  19.     /*
  20.      * Sortieren und die Zeit messen
  21.      */
  22.     zeit = clock();
  23.     qsort_array(test, compare_ints);
  24.     zeit = clock() - zeit;
  25.  
  26.     /*
  27.      * Array ausgeben, damit man auch sieht, daß es sortiert ist
  28.      */
  29.     for(i = 0; i < 1000; ++i) {
  30.         for (j = 0; j < 9; ++j, ++i) printf("%-5d  ", test[i]);
  31.         printf("\n");
  32.     }
  33.  
  34.     /*
  35.      * Zum Schluß noch die benötigte Zeit ausgeben
  36.      */
  37.     tausendstel = (zeit % 200) * 5;
  38.     printf("Zeit: %d.%03d Sekunden\n", zeit / 200, tausendstel);
  39. }
  40.  
  41.  
  42. /*
  43.  * Vergleich zweier Zahlen für qsort
  44.  */
  45. proc compare_ints(i1, i2)
  46. {
  47.     return i1 - i2;
  48. }
  49.  
  50.  
  51. /*
  52.  * Kleine Zufallszahlenfunktion
  53.  */
  54. proc rand()
  55. local rv;
  56. {
  57.     rv = random_seed * 1103515245 + 12345;
  58.     random_seed = rv;
  59.     rv = (rv / 65536) & 32767;
  60.     return rv;
  61. }
  62.